home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
fg
/
fgdemo40
/
fgdemo.doc
< prev
next >
Wrap
Text File
|
1995-02-11
|
48KB
|
962 lines
FGDEMO version 4.0
Ted Gruber Software Voice: (702) 735-1980
PO Box 13408 FAX: (702) 735-4603
Las Vegas, NV 89112 BBS: (702) 796-7134
CIS: 72000,1642
------------------------------------------------------------------------------
FGDEMO: the demo program for Fastgraph 4.0 and Fastgraph/Light 4.0
------------------------------------------------------------------------------
The FGDEMO program illustrates some of the features of the Fastgraph (tm)
graphics library. FGDEMO was written by Diana Gruber, senior programmer at Ted
Gruber Software. You can contact Ted Gruber Software at the address and phone
numbers listed at the bottom of this file.
Fastgraph is a programmer's graphics library, a programming tool useful for
writing games and other graphics-based programs. There is more information
about Fastgraph in a later section of this file.
------------------------------------------------------------------------------
Running FGDEMO
------------------------------------------------------------------------------
You can install FGDEMO on a hard disk or run it from diskette. Just type
FGDEMO at the DOS command prompt. To install FGDEMO on a hard disk, create a
subdirectory and copy all the files from the diskette to the subdirectory.
When you start FGDEMO, you'll see an attractive scrolling sky and scaling logo
appear. This display uses the 320x200x256 "mode X" graphics mode. In a few
seconds, or when you press any key, the sky and logo will disappear, FGDEMO
will switch to the 640x350x16 EGA/VGA graphics mode, and the main menu screen
will appear. From this screen you may choose options using the point and click
vertical menus to view various Fastgraph features and effects.
------------------------------------------------------------------------------
FGDEMO source code
------------------------------------------------------------------------------
FGDEMO is distributed with full C source code. You may use the FGDEMO source
code in your Fastgraph and FG/Light applications. If you want to recompile any
of the FGDEMO source code, you'll need one of the supported compilers and
either Fastgraph version 4.0 or Fastgraph/Light version 4.0. If you want to
use this code, and you don't have a copy of Fastgraph, please contact Ted
Gruber Software. If you want to "try before you buy", we will gladly send you
an evaluation copy of Fastgraph/Light, the shareware version of Fastgraph, at
no charge. You can also obtain Fastgraph/Light from our technical support BBS,
or from our internet ftp site (ftp.accessnv.com).
Because of space constraints, the FGDEMO source code is distributed in an
archived format. To unarchive the source code, copy all FGDEMO files to a
subdirectory on your hard disk, then type SOURCE. This runs a self-extracting
archive (SOURCE.COM) that will copy the FGDEMO source code files to the
current directory. Note that it's not necessary to unarchive the source code
if you just want to run FGDEMO.
------------------------------------------------------------------------------
Distributing FGDEMO
------------------------------------------------------------------------------
You may freely distribute FGDEMO as long as all the files are distributed
together in their original unaltered state. If you want to zip the files
together for BBS distribution, please use the file name FGDEMO40.ZIP for
version 4.0 of FGDEMO. The following files are included in the FGDEMO
distribution:
FGDEMO files:
FGDEMO EXE the FGDEMO program
FGDEMO DOC this file: documentation
ORDER FRM Fastgraph order form
SOURCE COM self-extracting archive containing FGDEMO source code
TGSDEMO EXE the TGSDEMO program (sky and logo demo)
TGSDEMO FGI image resource file for TGSDEMO program
FONT14 PCX 14 point font file
BORLAND PCX image files for various effects
DUB PCX
MOUNTAIN PCX
MOUSE PCX
FILE_ID DIZ for PCBoard bulletin board descriptions
The following files are archived in the SOURCE.COM file:
C and C++ source code files:
CHAR C character display and management functions
COMMON C initialization, termination, general I/O functions
DISPLAY C functions on Display submenu
FGDEMO C function 'main' and screen drawing functions
FILE C functions on File submenu
FUNDMTLS C functions on Fundamentals submenu
MENU C define and manage the horizontal and vertical menus
MISC C functions on Miscellaneous submenu
VIDEO C functions on Video submenu
TGSDEMO CPP moving sky with scaled logo demo program
Header files:
DECLARE H function declarations (included in DEFS.H)
DEFS H general declarations and definitions (all C files)
BIRDS H bird animation bitmaps (MISC.C and DISPLAY.C)
FGTITLE H bitmapped "Fastgraph" letters (MISC.C)
FIGHTER H bitmapped airplane for keyboard handler (MISC.C)
TNTMAPS H TNT and "Kablooy" bitmaps for explosion (DISPLAY.C)
Compilation batch files, make files, and project files:
BUILDBC BAT batch file to compile and link FGDEMO with Borland C++
BUILDMSC BAT batch file for Microsoft C/C++ or Visual C++
BUILDPC BAT batch file for Power C
BUILDQC BAT batch file for Microsoft QuickC
BUILDTC BAT batch file for Turbo C/C++
BUILDWC BAT batch file for Watcom C/C++ (16-bit)
FGDEMOBC MAK make file for Borland C++
FGDEMOMC MAK make file for Microsoft C/C++
FGDEMOQC MAK make file for Microsoft QuickC
FGDEMOVC MAK make file for Microsoft Visual C++ (16-bit)
FGDEMOWC MAK make file for Watcom C/C++ (16-bit)
FGDEMOBC PRJ project file for Borland C++
FGDEMOPC PRJ project file for Power C
FGDEMOTC PRJ project file for Turbo C++
------------------------------------------------------------------------------
Compiling and linking FGDEMO
------------------------------------------------------------------------------
You may recompile the FGDEMO source code using Borland C++, Microsoft C/C++,
QuickC, Power C, Turbo C/C++, Visual C++ (16-bit), or Watcom C++ (16-bit). The
medium memory model is recommended (the large model will also work). FGDEMO is
too big to use the small memory model. The remainder of this section will
describe the batch files, make files, and project files included in the FGDEMO
distribution to assist with compilation and linking.
Borland C++
A make file (FGDEMOBC.MAK) and batch file (BUILDBC.BAT) are provided for
compiling and linking FGDEMO with Borland C++. Type "MAKE -fFGDEMOBC.MAK" to
use the make file, or BUILDBC to recompile and link all the FGDEMO code. The
make file and batch file are set up to use the Fastgraph/Light medium model
library. Change the library name from FGLM.LIB to FGM.LIB in the TLINK command
to use Fastgraph instead of FG/Light.
A project file (FGDEMOBC.PRJ) is also provided for the Borland C++ Integrated
Development Environment (IDE). Project files are required within the IDE to
build EXE files that utilize third party libraries such as Fastgraph. Select
the project file from the Project menu in the IDE. Refer to your Borland C++
manuals for more information about project files.
Microsoft C/C++
A make file (FGDEMOMC.MAK) and batch file (BUILDMSC.BAT) are provided for
compiling and linking FGDEMO with Microsoft C/C++. Type "MAKE FGDEMOMC.MAK" to
use the make file, or BUILDMSC to recompile and link all the FGDEMO code. The
make file and batch file are set up to use the Fastgraph/Light medium model
library. Change the library name from FGLM.LIB to FGM.LIB in the LINK command
to use Fastgraph instead of FG/Light.
If you are using Microsoft C version 6, do not include the /QC option when
compiling FGDEMO with the medium memory model. Microsoft technical support has
confirmed that this version of the compiler has known problems when passing
structures to functions if /QC is specified. We've noticed no such problems
with the large model, however.
Microsoft QuickC
A make file (FGDEMOQC.MAK) and batch file (BUILDQC.BAT) are provided for
compiling and linking FGDEMO with QuickC. Type "NMAKE FGDEMOQC.MAK" to use
the make file, or BUILDQC to recompile and link all the FGDEMO code. The make
file and batch file are set up to use the Fastgraph/Light medium model
library. Change the library name from FGLM.LIB to FGM.LIB in the LINK command
to use Fastgraph instead of FG/Light.
If you are using Fastgraph/Light and you receive the message "out of heap
space" when compiling FGDEMO, unload FGDRIVER and try compiling again.
Microsoft Visual C++ (16-bit)
A make file (FGDEMOVC.MAK) and batch file (BUILDMSC.BAT) are provided for
compiling and linking FGDEMO with Visual C++. Type "NMAKE FGDEMOVC.MAK" to use
the make file, or BUILDMSC to recompile and link all the FGDEMO code. The make
file and batch file are set up to use the Fastgraph/Light medium model
library. Change the library name from FGLM.LIB to FGM.LIB in the LINK command
to use Fastgraph instead of FG/Light.
Power C
A project file (FGDEMOPC.PRJ) and batch file (BUILDPC.BAT) are provided for
compiling and linking FGDEMO with Power C. Type PC FGDEMOPC.PRJ to use the
project file, or BUILDPC to recompile and link all the FGDEMO code. The
project file and batch file are set up to use the Fastgraph/Light medium model
library. Change the library name from FGLM.LIB to FGM.LIB in the PCL command
to use Fastgraph instead of FG/Light.
Turbo C
A batch file (BUILDTC.BAT) is provided for compiling and linking FGDEMO with
Turbo C. Type BUILDTC to recompile and link all the FGDEMO code. The batch
file is set up to use the Fastgraph/Light medium model library. Change the
library name from FGLM.LIB to FGM.LIB in the TLINK command to use Fastgraph
instead of FG/Light.
Turbo C++
A batch file (BUILDTC.BAT) is provided for compiling and linking FGDEMO with
Turbo C++. Type BUILDTC to recompile and link all the FGDEMO code. The batch
file is set up to use the Fastgraph/Light medium model library. Change the
library name from FGLM.LIB to FGM.LIB in the TLINK command to use Fastgraph
instead of FG/Light.
A project file (FGDEMOTC.PRJ) is also provided for the Turbo C++ Integrated
Development Environment (IDE). Project files are required within the IDE to
build EXE files that utilize third party libraries such as Fastgraph. Select
the project file from the Project menu in the IDE. Refer to your Turbo C++
manuals for more information about project files.
Watcom C/C++ (16-bit)
A make file (FGDEMOWC.MAK) and batch file (BUILDWC.BAT) are provided for
compiling and linking FGDEMO with Watcom C++. Type "MAKE /f FGDEMOWC.MAK" to
use the make file, or BUILDWC to recompile and link all the FGDEMO code. The
make file and batch file are set up to use the Fastgraph/Light medium model
library. Change the library name from FGLM.LIB to FGM.LIB in the WCL or WLINK
commands to use Fastgraph instead of FG/Light.
------------------------------------------------------------------------------
Borland IDE troubleshooting
------------------------------------------------------------------------------
If you have problems compiling and linking FGDEMO within the Borland C++,
Turbo C++, or Turbo C Integrated Development Environment, please check the
following before you call us:
1) Make sure you have a PROJECT FILE that includes the names of all C source
code files comprising FGDEMO, as well as the FGLM.LIB library file name. Some
versions of Turbo C++ require the full path name for library files specified
in a project file. For more information on project files, consult your Borland
manuals.
2) The include files must exist in a path recognized by the IDE. From the
menu, select Options; Directories; Include Directories. Make sure FASTGRAF.H
exists in the path.
3) The library files must exist in a path recognized by the IDE. From the
menu, select Options; Directories; Library Directories. Make sure FGLM.LIB
exists in the path.
4) You must compile and link for the same memory model. From the menu, select
Options; Compiler; Code Generation. Compile for the medium model if linking
with FGLM.LIB.
------------------------------------------------------------------------------
About the FGDEMO menus
------------------------------------------------------------------------------
The menu structure is defined in the file DEFS.H. A typdef MENU is defined
which is a structure containing information about each menu item: the function
called when the menu choice is activated, the descriptive name of the menu
item, the x and y location of the menu item, and pointers to the next and
previous items on the menu. Each menu is defined by an array of these
structures, and is initialized at the top of MENU.C.
There are two types of menus: a horizontal menu, which is the moving bar menu
at the top of the screen, and vertical menus, also known as "pull-down" menus.
When a pull-down menu is visible, a menu function may be activated by either
clicking the mouse on a highlighted menu function, or by pressing <Enter>.
Arrow keys are used to highlight the next and previous menu item, and a mouse
may also be used.
User input relevant to the menus is accepted in two places: within the
vertical_menu function (to activate a menu choice), or in the main function
(to control the horizontal menu). The horizontal menu is also controlled
within the vertical menu, to the extent that if an arrow key is pressed, the
next or previous pull-down menu becomes active.
The entire screen, including the horizontal menu and the dithered background,
is drawn at the beginning of the program and stored on the hidden page. When a
function is called, for example "point", part or all of the visual page is
overwritten, in this case with a pattern of points. When a key or mouse button
is pressed, the relevant parts of the hidden page are copied back to the
visual page using fg_transfer, resulting in quick (almost instantaneous)
screen redraws. Occasionally, the entire hidden page needs to be completely
redrawn, such as when a PCX file is displayed, but in most cases only a small
part of the hidden page needs to be redrawn, usually with a single call to
fg_drect. In general, the hidden page is assumed to have a "clean" copy of the
horizontal menu screen throughout the program, and whenever it is overwritten
it is immediately restored.
------------------------------------------------------------------------------
About the TGSDEMO program
------------------------------------------------------------------------------
The TGSDEMO program displays the scrolling sky and scaled logo at the start of
FGDEMO. You may also run this program separately entering TGSDEMO at the DOS
command prompt.
C++ source code for TGSDEMO is included as part of the FGDEMO distribution.
However, you must have Fastgraph 4.0 and Fastgraph/Image 2.0 to re-link the
program.
TGSDEMO was written by Michael Miller of MSJ Applications, Inc., of Valley
Stream, New York.
------------------------------------------------------------------------------
Fastgraph 4.0
------------------------------------------------------------------------------
Fastgraph is a versatile, high-performance programmer's graphics library for
DOS-based PC systems. It is powerful enough to satisfy the most demanding
graphics application, yet it is easy enough for even the novice graphics
programmer. Fastgraph includes more than 275 hand-optimized routines, from
pixel display to sophisticated animation tools. This collection of routines
provides a programmer with proven, powerful tools to take command of the PC
and PS/2 text and graphics video environment.
Fastgraph's major functional areas include:
* Real mode, 16-bit protected mode, and 32-bit protected mode libraries
* Support for most popular C/C++, Pascal, BASIC, and FORTRAN compilers
* Support for 28 video modes, including SuperVGA, standard and extended VGA,
MCGA, EGA, Hercules, Tandy, CGA, and color and monochrome text
* Direct SVGA chipset support plus VESA in resolutions of 640x400x256,
640x480x256, 800x600x256, 1024x768x256, 800x600x16, and 1024x768x16
* SVGA chipset autodetection
* Colors, virtual colors, and palettes
* Graphics fundamentals, including points, solid and dashed lines,
polygons, circles, ellipses, solid and dithered rectangles, region
fill, and clipping
* Viewports and world space coordinate system
* A scalable stroked character font
* GIF and PCX display and creation routines
* Support for Autodesk Animator FLI/FLC files
* Bitmapped image support, including mode-specific and mode-independent
images, transparent pixels, clipped and reversed images, scaled and sheared
images, image retrieval, pixel run maps, and masking maps
* Fast block transfer routines (BitBlt)
* Virtual buffers
* Physical, virtual, and logical video page management
* Resizeable video pages for smooth, flicker-free panning
* Split screen support
* Animation and special effects
* Keyboard, mouse, and joystick support
* Low-level keyboard handler, ideal for game development
* Sound effects and music, both synchronous and asynchronous
* 750-page tutorial-style user's guide and reference manual
* No royalties
------------------------------------------------------------------------------
Fastgraph video mode summary
------------------------------------------------------------------------------
SVGA 640x400x256 MCGA 320x200x256
640x480x256
800x600x256 CGA 320x200x4
1024x768x256 640x200x2
800x600x16
1024x768x16 Hercules 320x200 dithered
720x348
VGA 320x200x256 (Mode X)
320x240x256 (Mode X) Tandy 320x200x16
320x400x256 (Mode X)
320x480x256 (Mode X) Text 40x25 color
640x480x16 80x25 color
640x480x2 80x25 monochrome
80x43 color
EGA 320x200x16 80x50 color
640x200x16
640x350x16
640x350 monochrome
------------------------------------------------------------------------------
Supported SVGA chipsets
------------------------------------------------------------------------------
Ahead "A" type Oak OTI-067
Ahead "B" type Oak OTI-077
ATI 18800 Oak OTI-087
ATI 18800-1 Paradise PVGA1a
ATI 28800 Paradise WD90C00/10
ATI 38800 (mach8) Paradise WD90C11/30/31/33
ATI 68800 (mach32) S3
ATI 88800 (mach64) Trident 8800
Avance Logic 2000 series Trident 8900
Chips & Technologies 82c45x Trident 9000
Cirrus Logic 5400 series Tseng ET3000
Cirrus Logic 6400 series Tseng ET4000
Genoa 6000 series Video7
NCR 77C22/77C32 plus VESA BIOS support
------------------------------------------------------------------------------
Supported compilers
------------------------------------------------------------------------------
32-bit protected mode:
Borland C++ (4.02 or above)
MetaWare High C/C++ (3.0 or above)
Microsoft Fortran PowerStation (1.0 or above)
Microsoft Visual C++ 32-bit edition (1.0 or above)
Watcom C/C++ (9.5 or above)
Watcom C32 for DOS (9.5 or above)
16-bit protected mode:
Borland C++ (2.0 or above)
Borland Pascal (7.0 or above)
Microsoft C/C++ (5.0 or above)
Microsoft Visual C++ (1.0 or above)
Turbo C++ (3.0 or above)
Real mode:
Borland C++ (2.0 or above)
Borland Pascal (7.0 or above)
Microsoft BASIC PDS (7.1 or above)
Microsoft C/C++ (5.0 or above)
Microsoft FORTRAN (4.0 or above)
Microsoft QuickBASIC (4.0 or above)
Microsoft QuickC (2.0 or above)
Microsoft Visual Basic for DOS (1.0 or above)
Microsoft Visual C++ (1.0 or above)
Power C (2.0 or above)
Turbo C (2.0 or above)
Turbo C++ (1.0 or above)
Turbo Pascal (6.0 or above)
Watcom C/C++ (9.5 or above)
Zortech C++ (3.0 or above)
------------------------------------------------------------------------------
Supported DOS extenders
------------------------------------------------------------------------------
32-bit:
Borland PowerPack for DOS
DOSXMSF (Fortran PowerStation)
Phar Lap TNT Dos-Extender SDK
Phar Lap TNT Dos-Extender Lite
Rational Systems DOS/4G
Rational Systems DOS/4GW
Rational Systems DOS/4GW Professional
16-bit:
Borland Pascal 7 (built in DPMI extender)
Borland PowerPack for DOS
Phar Lap 286|Dos-Extender SDK
Phar Lap 286|Dos-Extender Lite
Rational Systems DOS/16M
------------------------------------------------------------------------------
Summary of Fastgraph 4.0 functions
------------------------------------------------------------------------------
Video initialization
--------------------
fg_automode determine which available video mode offers the highest
resolution and number of colors
fg_bestmode choose the best video mode given resolution and video page
requirements
fg_cursor turn the text mode cursor on or off
fg_egacheck return information about the active EGA or VGA adapter and
display
fg_getlines get the number of text rows per video page
fg_getmode return the current video mode number
fg_initpm initialize Fastgraph's protected mode kernel
fg_reset erase the screen, restoring screen attributes if ANSI.SYS
is loaded
fg_setlines in EGA/VGA/SVGA text modes, establish 25, 43, or 50 line mode
fg_setmode establish a video mode and initialize Fastgraph
fg_svgainit autodetect the SVGA chipset (or VESA) and initialize
Fastgraph's SVGA kernel
fg_testmode determine whether or not a video mode is available on the
system
Coordinate systems
------------------
fg_getmaxx get the maximum x coordinate in screen space
fg_getmaxy get the maximum y coordinate in screen space
fg_getview return current viewport extremes
fg_getworld determine the current limits of the world space coordinate
system
fg_initw initialize the world space coordinate system
fg_setview define viewport extremes and position
fg_setworld define the floating point world space coordinate system
fg_xalpha translate screen space x coordinate to character space column
fg_xconvert translate character space column to screen space x coordinate
fg_xscreen translate world space x coordinate to screen space x coordinate
fg_xview translate horizontal viewport coordinate to screen space
fg_xworld translate screen space x coordinate to world space x coordinate
fg_yalpha translate screen space y coordinate to character space row
fg_yconvert translate character space row to screen space y coordinate
fg_yscreen translate world space y coordinate to screen space y coordinate
fg_yview translate vertical viewport coordinate to screen space
fg_yworld translate screen space y coordinate to world space y coordinate
Colors and palettes
-------------------
fg_colors return number of colors available in the current video mode
fg_defcolor assign a color value to a virtual color index
fg_getcolor get the current color index (graphics modes) or display
attributes (text modes)
fg_getdacs get the RGB components of a block of DAC registers
fg_getindex get the color value assigned to a virtual color index
fg_getrgb get the RGB components of a specified DAC register
fg_maprgb map six-bit RGB components to a 16-color palette value
fg_palette assign a color value to a palette
fg_palettes define 16 palette register values
fg_setattr establish display attributes in text modes
fg_setcolor establish the current color index
fg_setdacs specify RGB components of a block of DAC registers
fg_setrgb define the RGB value of a palette or video DAC register
Graphics fundamentals
---------------------
fg_box draw a hollow rectangle
fg_boxdepth specify the outline size of a hollow rectangle
fg_boxw draw a hollow rectangle in world space
fg_boxx draw a hollow rectangle in XOR mode
fg_boxxw draw a hollow rectangle in XOR mode in world space
fg_circle draw a hollow circle
fg_circlef draw a filled circle
fg_circlefw draw a filled circle in world space
fg_circlew draw a hollow circle in world space
fg_clprect draw a clipped rectangle
fg_clprectw draw a clipped rectangle in world space
fg_dash draw a dashed line
fg_dashrel draw a dashed line relative to current position
fg_dashrw draw a relative dashed line in world space
fg_dashw draw a dashed line in world space
fg_draw draw a line
fg_drawrel draw a line relative to the current position
fg_drawrelx draw a relative XOR line
fg_drawrw draw a relative line in world space
fg_drawrxw draw a relative XOR line in world space
fg_draww draw a line in world space
fg_drawx draw an XOR line
fg_drawxw draw an XOR line in world space
fg_drect draw a dithered rectangle
fg_drectw draw a dithered rectangle in world space
fg_ellipse draw an ellipse
fg_ellipsef draw a filled ellipse
fg_ellipsew draw an ellipse in world space
fg_ellipsfw draw a filled ellipse in world space
fg_erase clear the active video page
fg_fillpage fill active video page with current color
fg_flood like fg_paint but observes the clipping limits
fg_floodw like fg_paintw but observes the clipping limits
fg_getclip return current clipping limits
fg_getpixel get the color value of specified pixel
fg_getxbox return fg_box left and right edge width
fg_getxpos get screen space x coordinate of graphics cursor
fg_getybox return fg_box top and bottom edge width
fg_getypos get the screen space y coordinate of graphics cursor
fg_inside check if a specified point is inside a convex polygon
fg_move position the graphics cursor
fg_moverel position the graphics cursor relative to current position
fg_moverw position the graphics cursor, relative, in world space
fg_movew position the graphics cursor in world space
fg_paint fast flood fill of any closed area, including an area with
holes
fg_paintw world space version of fg_paint
fg_point draw a point
fg_pointw draw a point in world space
fg_pointx draw a point in XOR mode
fg_pointxw draw a point in XOR mode in world space
fg_polyedge specify fg_polyfill right and bottom edge inclusion
fg_polyfill draw a filled convex polygon
fg_polygon draw an unfilled polygon
fg_polygonw draw an unfilled polygon in world space
fg_polyline draw an unfilled polygon from one vertex array
fg_polyoff define polygon offsets for fg_polyfill and fg_polyline
fg_rect draw a solid rectangle in screen space or character space
fg_rectw draw a solid rectangle in world space
fg_setclip establish limits of clipping region for primitives and
bitmapped images
fg_setclipw world space version of fg_setclip
Character display
-----------------
fg_chgattr change display attribute for existing text in text modes
fg_chgtext change text while preserving the display attributes in text
modes
fg_fontsize enable 8x8, 8x14, or 8x16 ROM font (VGA/SVGA only)
fg_getattr get the display attribute of a given character cell in text
modes
fg_getchar get the character value of a given character cell in text modes
fg_getxjust return fg_print and fg_printc horizontal justification setting
fg_getyjust return fg_print and fg_printc vertical justification setting
fg_justify define justification settings for fg_print
fg_locate define row and column for character display
fg_print display hardware characters in screen space
fg_printc version of fg_print that performs clipping
fg_setangle define the orientation of software (stroked) characters
fg_setratio define the aspect ratio for software characters
fg_setsize define the height of software characters in screen space
fg_setsizew define the height of software characters in world space
fg_swchar display software (stroked) characters
fg_swlength compute the length of a string of software characters
fg_swtext display software characters
fg_text display hardware (ROM font) characters
fg_textc version of fg_text that supports clipping
fg_where return the text cursor position
Video page management
---------------------
fg_allocate create a virtual page in conventional memory
fg_alloccms create a logical page in conventional memory
fg_allocems create a logical page in expanded memory
fg_allocxms create a logical page in extended memory
fg_findpage find an available page number for virtual/logical pages
fg_freepage release a virtual or logical page
fg_getaddr get the segment address of the active video page
fg_getentry get address and type of a physical, virtual, or logical page
fg_getpage get the active video page number
fg_getvpage get the number of the visual video page
fg_initems initialize expanded memory (EMS)
fg_initxms initialize extended memory (XMS)
fg_pagesize return video page size in bytes
fg_resize change the size of a video page (use with fg_pan)
fg_setentry set address and type of a physical, virtual, or logical page
fg_setpage establish the active video page
fg_setvpage establish the visual video page
Virtual buffer management
-------------------------
fg_vbaddr return address of a virtual buffer
fg_vballoc create a virtual buffer (allocate memory internally)
fg_vbclose close the active virtual buffer
fg_vbcopy copy rectangular region from one virtual buffer to another
fg_vbcut copy rectangular region from active video page to virtual buffer
fg_vbdefine create a virtual buffer (from previously allocated memory)
fg_vbfree release virtual buffer memory allocated with fg_vballoc
fg_vbhandle return handle of the active virtual buffer
fg_vbinit initialize Fastgraph's virtual buffer environment
fg_vbopen make an existing virtual buffer the active virtual buffer
fg_vbpaste copy rectangular region from virtual buffer to active video page
fg_vbtccopy version of fg_vbcopy that supports transparent colors
fg_vbtcxfer version of fg_vbpaste that supports transparent colors
fg_vbundef release a virtual buffer handle
Bitmapped image management
--------------------------
fg_clipmap version of fg_drawmap that performs clipping
fg_clipmask draw a clipped masking map
fg_clpimage draw a clipped mode-specific bitmap
fg_display display a pixel run map
fg_displayp display a packed pixel run map
fg_drawmap draw a mode-independent bitmap
fg_drawmask draw a masking map
fg_drwimage draw a lightning-fast mode-specific bitmap
fg_flipmask draw an inverted masking map
fg_flpimage draw an inverted mode-specific bitmap
fg_getimage retrieve an image as a mode-specific bitmap
fg_getmap retrieve an image as a mode-independent bitmap
fg_imagesiz calculate the number of bytes required for mode-specific
bitmap storage
fg_invert invert orientation of a bitmapped image array
fg_pack translate "one pixel per byte" bitmap to mode-specific format
fg_putimage like fg_drwimage but doesn't check for transparent pixels
fg_revimage display a reversed mode-specific bitmap
fg_revmask display a reversed masking map
fg_scale scale a bitmapped image
fg_shear shear a bitmapped image
fg_unpack translate mode-specific bitmap to "one pixel per byte" format
Image file routines
-------------------
fg_dispfile display a pixel run file, packed or unpacked
fg_flicdone close an FLI or FLC file
fg_flichead read an FLI or FLC file header
fg_flicmode determine optimal video mode for an FLI or FLC file
fg_flicopen open an FLI or FLC file
fg_flicplay play one or more frames from an FLI or FLC file
fg_flicsize return FLI or FLC image dimensions
fg_flicskip advance one or more frames in an FLI or FLC file
fg_gifhead read a GIF file global header and first local header
fg_gifmode determine optimal video mode for a GIF file
fg_gifpal retrieve palette information from a GIF file
fg_gifrange return GIF image dimensions
fg_imagebuf define the address and size of the image file buffer
fg_loadpcx load a PCX image into a virtual buffer
fg_makegif create a GIF file from a rectangular region of the active
video page
fg_makepcx create a PCX file from a rectangular region of the active
video page
fg_makeppr create a PPR file from a rectangular region of the active
video page
fg_makespr create an SPR file from a rectangular region of the active
video page
fg_pattern define dither patterns for pixel run maps
fg_pcxhead read a PCX file header into a 128-byte buffer
fg_pcxmode determine the optimal mode for displaying a PCX file
fg_pcxpal retrieve palette information from a PCX file
fg_pcxrange return PCX image dimensions
fg_showflic play an FLI or FLC file
fg_showgif display a GIF file
fg_showpcx display a PCX file
fg_showppr display a packed pixel run (PPR) file
fg_showspr display a standard pixel run (SPR) file (RLE)
Block transfer routines
-----------------------
fg_copypage copy an entire physical, virtual, or logical page
fg_getblock transfer rectangular region from video memory to RAM
fg_gethpage get the number of the current "hidden" video page
fg_putblock transfer rectangular region from RAM to video memory
fg_restore fast rectangular area copy from hidden to visual page
fg_restorew world space version of fg_restore
fg_save fast rectangular area copy from visual to hidden page
fg_savew world space version of fg_save
fg_sethpage establish the hidden video page
fg_tcdefine define transparent color number for fg_tcxfer
fg_tcmask define transparent colors for fg_tcxfer
fg_tcxfer transfer rectangular area with transparent colors
fg_transfer fast rectangular region copy from any page to any page (bitblt)
Special effects
---------------
fg_fadein copy hidden to visual page in small, random increments
fg_fadeout erase the visual page in small, random increments
fg_pan change the screen origin for full-screen four-directional
smooth scrolling
fg_panw world space version of fg_pan
fg_scroll smooth vertical scrolling of rectangular area
fg_split enable or disable a split screen environment
Keyboard control
----------------
fg_capslock turn the CapsLock key on or off
fg_getkey wait for a keystroke or retrieve the next value from the
keystroke buffer
fg_intkey get the next entry from BIOS keyboard buffer if it is not empty
fg_kbinit enable or disable the low-level keyboard handler
fg_kblast return scan code of most recent keypress
fg_kbreset reset Fastgraph's low-level keyboard handler
fg_kbtest determine if a key is now pressed or released
fg_numlock get the state of the NumLock key
fg_scrlock get the state of the ScrollLock key
fg_setcaps turn the CapsLock key on or off
fg_setnum turn the NumLock key on or off
fg_waitkey wait for any keystroke
Mouse management
----------------
fg_mouse256 define 256-color mouse cursor
fg_mousebut get information about the mouse - were buttons pressed, and
where?
fg_mousecur define the appearance of the mouse cursor in text modes
fg_mousefin unhook Fastgraph's XVGA or SVGA mouse handler
fg_mouseini initialize the mouse
fg_mouselim define limits of mouse movement
fg_mousemov position the mouse cursor
fg_mousepos get the current mouse position and button status
fg_mouseptr define shape and appearance of mouse cursor in graphics modes
fg_mousespd control the speed of mouse cursor relative to the speed of the
mouse
fg_mousevis make the mouse cursor visible or invisible
Joystick support
----------------
fg_button get a joystick's button status
fg_getxjoy get the horizontal position of the specified joystick
fg_getyjoy get the vertical position of the specified joystick
fg_initjoy initialize either joystick
fg_intjoy return keyboard codes analogous to joystick position and
button status
Sound effects and music
-----------------------
fg_hush immediately stop any asynchronous sound or music
fg_hushnext stop asynchronous sound or music after the current iteration
fg_music play a sequence of musical notes
fg_musicb play asynchronous music (background music)
fg_playing determine whether there is any asynchronous sound in progress
fg_quiet stop continuous sound
fg_resume after suspending asynchronous music, continue the music
fg_sound produce a tone of specified frequency and duration
fg_sounds play a series of tones, concurrent with other activity
fg_suspend suspend asynchronous sound (see fg_resume)
fg_voice produce sound on TI sound chip (as in Tandy 1000)
fg_voices play a series of tones on TI sound chip, concurrent with other
activity
Timing
------
fg_getclock get the number of clock ticks since midnight
fg_measure benchmark the system speed to determine delay units for fg_stall
fg_stall stall for a given number of delay units (see fg_measure)
fg_waitfor delay a specified number of clock ticks (18.2 per second)
Miscellaneous
-------------
fg_getbanks return current SVGA read and write bank numbers
fg_memavail determine the amount of conventional memory available to DOS
fg_memory return the amount of video memory present in kilobytes
fg_setbanks define SVGA read and write bank numbers
fg_setfunc specify the logical operation in EGA/VGA modes (XOR/OR/AND)
fg_svgaver return Fastgraph SVGA kernel version number
fg_version return Fastgraph version number
fg_vgastate save or restore the internal VGA state
fg_waitvr specify if functions wait internally for vertical retrace
------------------------------------------------------------------------------
Fastgraph/Light
------------------------------------------------------------------------------
Fastgraph/Light is the shareware version of Fastgraph. The major differences
between Fastgraph and Fastgraph/Light are:
1) Fastgraph/Light requires an external TSR video driver (FGDRIVER.EXE) that
you must load before running programs developed with the product. Fastgraph
creates stand-alone EXE files that do not use FGDRIVER and only include
those Fastgraph routines your program actually uses.
2) Fastgraph/Light supports real mode only. Fastgraph includes libraries for
real mode, 16-bit protected mode, and 32-bit protected mode. The FGDRIVER
video driver in Fastgraph/Light precludes protected mode support.
3) Fastgraph/Light does not include the GIF support and world space functions
available in Fastgraph. Including these functions in Fastgraph/Light would
considerably increase the FGDRIVER memory requirements.
4) Fastgraph comes with a 750-page softcover manual. Fastgraph/Light comes
with an on-line manual.
5) Fastgraph provides better performance than Fastgraph/Light because of the
overhead associated with Fastgraph/Light's TSR video driver. This is
especially true for routines that do relatively little, such as FG_POINT.
Any programs developed using Fastgraph/Light are 100% source code compatible
with Fastgraph. If you purchase Fastgraph after trying Fastgraph/Light, all
you need to do is re-link your programs.
We will mail Fastgraph/Light to you at no charge, or you can download it from
our bulletin board or internet ftp site (ftp.accessnv.com). If you want to
download it, look for the following files for version 4.02 of Fastgraph/Light:
FGL402A.ZIP -- libraries, install program, utilities
FGL402B.ZIP -- complete 700 page documentation
FGL402C.ZIP -- C source code for example programs
FGL402D.ZIP -- BASIC source code for example programs
FGL402E.ZIP -- Pascal source code for example programs
FGL402F.ZIP -- FORTRAN source code for example programs
You will probably only want to download FGLA402A.ZIP and FGL402B.ZIP and your
choice of one of the other four files, depending on what language you are
programming in. These file names are current as of February 1995, but we
update the files regularly so the version numbers will change periodically.
To download Fastgraph/Light from CompuServe, select library 3 of the Game
Developers forum (GO GAMDEV) and browse for "Fastgraph". The CompuServe file
names are FGLA.ZIP through FGLF.ZIP.
------------------------------------------------------------------------------
Fastgraph/Fonts 2.0
------------------------------------------------------------------------------
Fastgraph/Fonts lets you easily add bitmapped character support to Fastgraph
applications. The product includes 40 font files in several point sizes, font
scaling and conversion utilities, and an interactive font editor that can
translate TrueType font files to the Fastgraph/Fonts font file format. A
program can load up to 32 fonts simultaneously. Font files shipped with
Fastgraph/Fonts may be distributed without royalties in your applications.
Fastgraph/Fonts 2.0 requires Fastgraph 4.0 or Fastgraph/Light 4.0.
------------------------------------------------------------------------------
Fastgraph/Image 2.0
------------------------------------------------------------------------------
Fastgraph/Image is a Fastgraph add-on product that provides functions and
utilities for managing resource files containing images and other files. While
the product was designed to manage and display PCX, GIF, pixel run, and flic
images stored in resource files, Fastgraph/Image can be used with any type of
file, including bitmaps, text files, and Fastgraph/Fonts font files. Besides
making your product distribution neater, Fastgraph/Image resource files save
disk space normally lost to DOS disk sectoring.
Fastgraph/Image 2.0 requires Fastgraph 4.0.
------------------------------------------------------------------------------
Ordering Information
------------------------------------------------------------------------------
The Fastgraph family of products represents a high-performance, comprehensive
development system for graphics programmers. For more information about any of
our products, please call, write, or FAX. You can download evaluation versions
and product demos from our technical support BBS at (702) 796-7134, or from
our internet ftp sites FTP.ACCESSNV.COM and SWCBBS.COM.
We accept Visa, MasterCard, and COD (extra charge for COD orders). Purchase
orders are welcome from most companies, schools, and government agencies, but
prior approval is required from TGS. After December 31, 1995, please contact
TGS for current version and pricing information.
Source code and site licenses are available for all products. Please call,
write, or FAX for details.
For your convenience, the order form below appears by itself in the ORDER.FRM
file.
Order from: Voice: (702) 735-1980
Ted Gruber Software FAX: (702) 735-4603
PO Box 13408 BBS: (702) 796-7134
Las Vegas, NV 89112 CIS: 72000,1642
Name: _____________________________________________________________________
Company: _____________________________________________________________________
Address: _____________________________________________________________________
City: _____________________________________ State: ________ Zip: ________
Country: _________________ Phone: __________________ FAX: ___________________
+=====+=========================================+=======+============+=======+
| | | Price | Shipping | |
| Qty | Product Description | Each | Code Cost | Total |
+=====+=========================================+=======+=====+======+=======+
| | Fastgraph graphics library | $249 | 1 | | |
+-----+-----------------------------------------+-------+-----+------+-------+
| | Fastgraph/Light with on-line manual | $49 | 2 | | |
| | (registered version) | | | | |
+-----+-----------------------------------------+-------+-----+------+-------+
| | Fastgraph/Light with printed manual | $79 | 1 | | |
| | (registered version) | | | | |
+-----+-----------------------------------------+-------+-----+------+-------+
| | Fastgraph/Fonts bitmapped font support | $69 | 2 | | |
| | (requires Fastgraph or Fastgraph/Light) | | | | |
+-----+-----------------------------------------+-------+-----+------+-------+
| | Fastgraph/Image image management toolkit| $69 | 2 | | |
| | (requires Fastgraph) | | | | |
+-----+-----------------------------------------+-------+-----+------+-------+
| | FG/Fonts and FG/Image bundle | $118 | 2 | | |
+-----+-----------------------------------------+-------+-----+------+-------+
| | Graphics Power Pack | $359 | 1 | | |
| | Fastgraph, FG/Fonts, and FG/Image | | | | |
+=====+=========================================+=======+=====+======+=======+
Subtotal | |
********************************* +=======+
* * Nevada residents add sales tax | |
* Shipping charges per product: * +=======+
* * COD orders (U.S. only) add $6 | |
* Code 1 Code 2 * +=======+
* ---------- ---------- * Total | |
* U.S. $7 U.S. $3 * +=======+
* Canada $10 Canada $3 * Method of payment:
* Other $30 Other $6 *
* * [ ] payment enclosed
********************************* [ ] Visa or MasterCard
[ ] COD
[ ] purchase order # _________________
For credit card orders only:
Card number: ____________________________________ Expiration date: __________
Signature: _________________________________________________________________